#ifndef _VECTOR_H
#define _VECTOR_H

#include "../Globals/_cdslib_globals.h"

/* Vector structure */
typedef struct {
    size_t length;
    size_t capacity;
    void **data;
} Vector;

/* Function prototypes */
void initVector  (Vector *initThis);
void deleteVector(Vector *deleteThis);

void  VectorAdd    (Vector *v, void  *addThis);
void *VectorGet    (Vector *v, size_t index);
void *VectorSet    (Vector *v, size_t index, void *setThis);
void  VectorInsert (Vector *v, size_t index, void *insertThis);
void *VectorExtract(Vector *v, size_t index);

int   _VectorResize(Vector *v);

#endif
